// import com.alibaba.druid.sql.ast.statement.SQLTableElement;
// import com.alibaba.druid.sql.dialect.oracle.ast.OracleSQLObjectImpl;
// import com.alibaba.druid.sql.dialect.oracle.visitor.OracleASTVisitor;

#include "OracleSupplementalIdKey.h"
#include "../../visitor/OracleASTVisitor.h"

// @Override
void OracleSupplementalIdKey::accept0(OracleASTVisitor_ptr visitor)
{
  visitor->visit(SharedObject(OracleSupplementalIdKey));
  visitor->endVisit(SharedObject(OracleSupplementalIdKey));
}

BOOL_ptr OracleSupplementalIdKey::isAll()
{
  return all;
}

void OracleSupplementalIdKey::setAll(BOOL_ptr all)
{
  this->all = all;
}

BOOL_ptr OracleSupplementalIdKey::isPrimaryKey()
{
  return primaryKey;
}

void OracleSupplementalIdKey::setPrimaryKey(BOOL_ptr primaryKey)
{
  this->primaryKey = primaryKey;
}

BOOL_ptr OracleSupplementalIdKey::isUnique()
{
  return unique;
}

void OracleSupplementalIdKey::setUnique(BOOL_ptr unique)
{
  this->unique = unique;
}

BOOL_ptr OracleSupplementalIdKey::isForeignKey()
{
  return foreignKey;
}

void OracleSupplementalIdKey::setForeignKey(BOOL_ptr foreignKey)
{
  this->foreignKey = foreignKey;
}

BOOL_ptr OracleSupplementalIdKey::isUniqueIndex()
{
  return uniqueIndex;
}

void OracleSupplementalIdKey::setUniqueIndex(BOOL_ptr uniqueIndex)
{
  this->uniqueIndex = uniqueIndex;
}

SQLObject_ptr OracleSupplementalIdKey::clone()
{
  SQLObject_ptr clone_tmp = std::shared_ptr<OracleSupplementalIdKey>(new OracleSupplementalIdKey());
  std::shared_ptr<OracleSupplementalIdKey> x = std::dynamic_pointer_cast<OracleSupplementalIdKey>(clone_tmp);
  // OracleSupplementalIdKey x = new OracleSupplementalIdKey();
  x->all = all;
  x->primaryKey = primaryKey;
  x->unique = unique;
  x->uniqueIndex = uniqueIndex;
  x->foreignKey = foreignKey;
  return x;
}
